All Shot

ABSTRACT

The All Shot Dynamic Basketball Shooting and Diagnostic Room is an automated, computer controlled athletic training system (see FIG.  1 ). The first embodiment allows a basketball shooter to shoot every shot on a basketball half court without moving to create distance or angle. The basket assembly (rim/net, backboard, shot cameras and attached sensors) move via computer generated instructions while the shooter remains stationary; the assembly moves in three dimensions and rotates within an enclosure. The predictability of the shooters position allows for diagnostic devices to focus on particular aspects of the shooter&#39;s mechanics. Additionally, the system includes a ball collection and return system connected to two mobile ball ejectors, which permit the shooter to receive passes in a programmable manner. A second embodiment allows a slanted floor used in the first embodiment to aid the collection process to be leveled to support close in training activity (see FIG.  5 ).

This application claims the benefit of PPA Ser. No. 61/936,475, filed 2014 Feb. 6 by the present inventors, which is incorporated by reference.

This application claims the benefit of PPA Ser. No. 62/115,416, filed 2015 Feb. 12 by the present inventors, which is incorporated by reference.

PRIOR ART

Soon after Doctor James Naismith invented the game of basketball in 1891, the concept of basketball skill training came into existence. Initially the process consisted of human(s) chasing rebounds and providing feedback on the shot. Of course this basic approach to training had limitations that made training less effective and inaccessible to most individuals. In response to these issues, a number of inventors have developed devices, many of them contraptions, proposed to improve training, particularly as it relates to ball gathering and return, shot practice, and skills evaluation.

Since those early days of basketball training and skills evaluation, some inventors have introduced inventions that have moderately mitigated the severity of aforementioned problems, while causing new problems. FIG. 14 is an example of such a device currently considered state of the art by many in the basketball training industry. This netting type of system deploys a net that surrounds the rim and extends above it. The netting collects basketballs that do not bounce too high and long off the rim or are missed outside the net containment area. Those balls that are collected load into an ejector to be passed again. The ejector throws out balls in the direction its rotational base is aimed. The shooter runs around the court to be in position to catch and shoot balls.

The netting type system shown in FIG. 14 solved some of the basic problems associated with the old shoot and chase (or have a friend chase) the ball method. Namely, these systems: 1) improved the efficiency of ball gathering, 2) in a limited manner, permitted shots off a pass without the need for a passer, and 3) increased the number of shots and total shots per time period over the old shoot-and-chase method.

On the other hand, problems caused or unsolved by these netting type systems have greatly hampered or limited the training experience. Among the problems created or remaining are: 1) diagnostics remained difficult to conduct due to the disperse shooting patterns, 2) netting makes the shot unrealistic (it is alien to the actual game of basketball), 3) netting limits the types of shots, 4) netting prevents smaller or weaker shooter from practicing a natural or full range of shots, 5) limited useful close-in work for shooter, 6) passes come from a fixed point under the rim (this pass rarely occurs in basketball), and 7) restriction on executable shot types (no turn and locate passes or shallow fall away shots).

ADVANTAGES

The All shot changes the dynamic of the shot training process as compared to netting based and other training systems. It solves the problems that the netting type system addressed and more by eliminating the need for a net or a stationary ejector, while improving ball capture amount and shot taking rates.

By removing the netting, mobilizing the ejector(s), and creating shots by moving the rim and backboard rather than the player, the All Shot allows more efficient and realistic training conditions. Among the advantages of the All Shot are: 1) shots are unobstructed by netting, 2) small and weaker shooters can access the rim with a more form-correct shot, 3) shallow arch shots possible, 4) more efficient ball collection, 5) varied passing positions (not just from under the rim), 6) nearly 180 degree pass to play to rim relationships are possible (pass turn locate or turn fall away shots possible), and rapid fire shots with greater shot to shot distance disparity.

Additionally the variety and sophistication of diagnostics is greater and easier to administer. This is due to the shot rending process which moves the rim and backboard to create any shot in the range of the All Shot relative to a single specified location. The training sessions are fast, more efficient, more informative, and conducted under more realistic basketball conditions.

DRAWING DESCRIPTIONS

FIG. 1 is a perspective view of the All Shot without the exterior enclosure.

FIG. 2 is a perspective view of the rear collection and return elements.

FIG. 3 is a perspective view of the shot rendering elements.

FIG. 4 is a perspective view of pass rendering elements.

FIG. 5 is a perspective view of the floor elements for the second embodiment.

FIG. 6 is an enlarged view of the collection elements from FIG. 2.

FIG. 7 is an enlarged view of pass rendering elements from FIG. 4.

FIG. 8 is an enlarged section view of shot rendering elements from FIG. 3.

FIG. 9 is an enlarged view of the shot rendering elements from FIG. 3.

FIG. 10 is a section view of lift elements from FIG. 2.

FIG. 11 is a section view of shot rendering elements from FIG. 8.

FIG. 12 is a flowchart of the general flow for the system control software.

FIGS. 13 a to 13 b is a flowchart of the specific flow for the system control software.

FIG. 14 is a perspective view of the prior art.

PARTS LIST

235 Activity Area

The area between Interior Containment Walls where athletic activity is conducted.

245 Arm Slot

A slot (gap) in the Interior Containment Wall that allows components in the Machinery Area access to the Activity Area, and vice versa.

105 Backboard

A basketball backboard.

159 Ball Carriage

A ball holder with a handle used to hold balls as part of the lift process.

165 Ball Carriage Handle

The part of the Ball Carriage use to aid in maintaining alignment as the carriage travels up and down in the Slide Tower.

191 Ball Catch

A channel-shaped surface used to help contain and lift balls that roll down the Side Ball Channel.

187 Ball Catch Frame Support

A frame used to support the Ball Catch in the catching of balls that roll down the Side Ball Channel. Also supports the travel of the Catch up and down the Side Ball Channel.

163 Ball Claw

The Ball Claw is used to dislodge balls from the cradle of Ball Carriages within a lift tower.

111 Ball Collector

A receptacle used to receive rolling balls and funnel them to align single file towards an exit in the rear of the collector.

161 Ball Cradle

The part of the Ball Carriage where the ball rests for the lift process.

137 Ball Dejammer

The Ball Dejammer is used to disrupt jammed balls in the Collector in order to aid the alignment process.

139 Ball Dejammer Sensor

A sensor used to detect ball jams in the collector.

403 Ball Ejector Linear Encoder

An encoder used to read the linear position of the ball ejector assembly.

405 Ball Ejector Rotational Encoder

An encoder used to read the rotational position of the ejector.

109 Ball Ejector Assembly

The Ball Ejector Mount Assembly is used to position and orient the Ejector, as well as positioning the Ball Catch Frame Support.

135 Ball Guide

A shaped panel used to guide balls to the center of the Collector.

207 Ball Load Shunt

Shaped tubing for directing the flow of balls.

255 Ball Load Shunt Stabilizer

A stabilizer used to hold the Ball Load Shunt in a stationary position in relation to the Ejector Stabilization Arm and Ball Shunt.

205 Ball Shunt

Shaped tubing for directing the flow of balls.

203 Ball Shunt Stand

A support for the Ball Shunt.

199 Ball Stop

A leaver connected to a Motion Control System used to hold balls in a particular position.

231 Base Support Beam

Plank like support beams connected to enclosure beam structure.

181 Support Beam

A Support used to support various parts of the All Shot, including the Interior Containment Wall.

103 Basketball Rim

A basketball rim, normally with a net.

225 Brake Rail

A rail used for brakes to lock onto.

215 Carriage and Structure Support Frame

An I-Beam support system for the Forward Backward Carriage and other support components.

189 Carriage Well

The area at the bottom of the Lift Tower where Ball Carriages are stacked.

141 Catch Frame Rail

A pair of plate surfaces used for the sliders of the Ball Catch Frame Support to ride on.

201 Catch Lift Actuator

Catch Lift Actuators are a pair of synchronized actuators used to lift the Ball Catch out of the Side Ball Channel.

185 Catch Support

A support used to support the catch components.

147 Channel Hub

A connector between the Upper Channel, and the lower right and left lift Channels.

149 Channel Select Guide

A motion control system with a select panel attached to the motor shaft.

197 Clamp Actuator

A multi-position actuator used to position the Solenoid Driven Clamp in relation to Ball Carriage Handles.

227 Clamp Lift Motor

A Transverse System used to help lift ball carriages in the lift tower.

195 Clamp Logic Controller

A programmable logic controller used to control the movements of the solenoid driven clamp.

157 Collect Channel Support

A support used to maintain the positions of components, namely the Collector, Upper Channel, Hub, Left Lift Channel, and Right Lift Channel, relative to one another and the Foundation.

101 Controller

The computer system used to interface and control various components of the All Shot.

131 Dead Spot

The Dead Spot is a ball damping slanted surface used to de-energize balls on the Slant Floor while providing support for the Hatch (when the Hatch is closed).

113 Ejector

A device used to shoot (pass) balls at a targeted position (where a player is expected to stand).

241 Ejector Base Support

The Ejector Base Support is a support base for the Ejector, as well as other components.

277 Ejector Motion Platform

The Ejector Motion Platform is an anchored platform that has a rack (track) attached that the pinion (gear) of the Ejector Propulsion System rides on.

249 Ejector Platform

A platform to hold and control the Ejector.

253 Ejector Propulsion Motor

The Ejector Propulsion Motor is used to move the Ball Pass Assembly.

257 Ejector Rotation Motor

A Motion Control System with an attached gear used to aid in positioning the Ejector rotationally.

247 Ejector Stabilization Arm

A stabilization plate used to connect components in the Activity Area and Machinery Area across the Interior Containment Wall.

427 Flap Frame

A frame used to support and assist in the movement of other support members.

433 Flap Slot

A u-shaped bracket used in the support of the Slant Floor Base Frame.

431 Flap Support

A support with a base and a rotating support plate used to help stabilize the Slant Floor at level position.

459 Flap Support Motor

a motion control system used to rotate the Flap Support.

269 Forward Backward Carriage

A platform that travels on sliders on top of support beams forwards and backwards, referenced from a shooter facing the Forward Wall.

229 Forward Backward Carriage Brake

An electromagnetic brake that helps to stabilize the Forward Backward Carriage.

407 Forward Backward Linear Encoder

Used to read the position of the forward backward carriage.

273 Forward Backward Platform

A platform that mounts the rack (track) that the Forward Backward Carriage travels on via the Forward Backward Propulsion System.

271 Forward Backward Propulsion System

A Transverse System used to move the Forward Backward Platform.

125 Forward Slant Support

Square stock material strong enough to support and maintain the Slant Floor at full slant (the specified max slant angle.)

219 Forward Wall

The wall that is ahead (in front of) of the shooter when he/she shoots a straight forward shot.

115 Foundation

The platform on which the All Shot is built.

239 Foundation Base Rail

A rail system on the Foundation in the Machinery Area used in the movement of the Ball Pass (ejector) Assembly.

129 Hatch

This is a cover that is hinged on the Shooting Platform and closes onto the Dead Spot.

127 Hatch Dead Spot Assembly

The Hatch and Dead Spot as a group.

166 Handle Ledge

Part of the Ball Carriage handle that is used as a grasp point for the lift process.

193 Hatch Motor

A motor used to open and close the hatch.

121 Industrial Hinge

A hinge used to aid the tilting and leveling of the Slant Floor.

425 Industrial Wheel

A load bearing wheel used for industrial purposes.

233 Interior Containment Wall

Interior Containment Wall is a walls situated with the Shooting Platform and Slant Floor on one side and a Ball Side Channel on the other. This type wall has slots to allow access to components in the Machinery Area to the Activity Area, and vice versa.

275 Left Right Carriage

A platform that travels on sliders on top of the Forward Backward Carriage left and right, referenced from a shooter facing the Forward Wall.

217 Left Right Carriage Brake

An electromagnetic brake that helps to stabilize the Left Right Carriage.

409 Left Right Linear Encoder

Used to read the position of the left right carriage.

281 Left Right Platform

A platform that mounts the rack (track) that the Left Right Carriage travels on via the Left Right Propulsion System.

279 Left Right Propulsion System

A Transverse System used to move the Left Right Platform.

429 Level Floor Actuator

An actuator used to position the flap frame

421 Level Floor Support Assembly

An Assembly of components used to support the Slant Floor when in level position.

175 Lift Beam

A support I-Beam used in the Ball Carriage Lift and lower process within Lift Towers.

151 Lift Channel

A channel that controls the flow of balls.

173 Lift Clamp

The Lift Clamp supports the lift process by positioning a Ball Carriages at designated heights in a lift tower.

401 Lift Linear Encoder

An encoder used to read the linear position of the Lift Clamp.

143 Lift Tower

The Lift Tower is an area (and associated components) where balls are lifted.

209 Linear Motion Bearing Housing

A cylindrical tube with embedded bearings along its interior length.

289 Linear Rotational Controller

The Linear Rotational Controller is a support base that assists the rotation of the Rim Backboard Support Assembly.

179 Load Support

A support used to add support at a specified location.

237 Machinery Area

The area outside the Interior Containment Walls (all the area not a part of the Activity Area).

259 Ejector Rotation Mount

A bracket used to assist the mounting of the Ejector Rotation Motor.

211 Movement Arm

A bar of proper dimensions to slide smoothly in the Linear Motion Bearing Housing with the necessary strength to transfer motion to the Ball Catch Frame Support throughout the range of motion.

305 Movement Base

A mount base for the Movement Bar.

213 Platform Frame

A frame used to support the Shooting Platform for athletic activity.

243 Platform Slot

A slot (gap) in the Interior Containment Wall that allows components in the Machinery Area access to the Activity Area, and vice versa.

119 Rear Wall

The wall that is behind the shooter when he/she shoots a straight forward shot.

297 Rendered Shot Brake

An electromagnetic brake that helps to stabilize the Shot Rim Backboard Assembly (indirectly).

293 Rim Backboard Lift Bracket

A support bracket that connects and aids in both the rotation and lift process.

265 Rim Backboard Support Assembly

A group of components that include a rim, a backboard, along with an attached support and a control bar.

287 Rotation Control Motor

A Transverse System used to indirectly rotate the Rim Backboard Support Assembly.

263 Rotational Lift Position System

The system that places the Rim Backboard Support Assembly rotationally and vertically.

283 Rim Backboard Support

A support used to hold the backboard.

285 Backboard Position Control Bar

A bar used to support and help position the Rim Backboard Support Assembly in 3D space.

295 Rim Lift Motor

A Transverse System used to lift and lower the Rim Backboard Support Assembly.

413 Rim Linear Encoder

An encoder used to read the linear position of the rim.

411 Rim Rotational Encoder

Used to read the rotational position of the Rim Rotational Motor.

291 Rotate Lift Support Plate

A plate used to support components used in lift and rotation of the Rim Backboard Support Assembly.

307 Mounting Bracket

A stand that supports and aids in the rotation of the Ejector.

153 Select Panel

A flat plate used to direct balls to one or another channel.

107 Shooting Platform

A flat surface suitable in size and function to conduct basketball shooting drills and basic associated activities (such as dribbling into a shot).

155 Shot Ball

A ball shot by the shooter in the collection process.

261 Shot Carriage Position System

The system of components that are used to position the Rim Backboard Support Assembly in the forwards/backwards and left/right directions for specified shots.

177 Side Ball Channel

A Ball Channel used to deliver balls from the Lift Tower to Ball Catch by use of gravity.

117 Slant Floor

A surface suitable for conducting basketball activities, when level, and as a ramp to direct basketballs downward, when tilted.

123 Slant Floor Base Frame

A frame used to support the Slant Floor for athletic activity.

133 Slant Floor Lift

Used to lift and lower the slant floor frame.

171 Slide Tower

A guide for Ball Carriage Handle to travel up and down in a lift tower.

169 Slide Track

Individual slots of the Slide Tower for Ball Carriage.

183 Solenoid Driven Clamp

The Solenoid Driven Clamp is a clamp with plate jaws that are opened and closed via solenoid(s), or comparable means, to clamp and hold Ball Carriages for the ball lift process.

457 Top Brake Rail

A rail used for brakes to lock onto.

251 Top Stabilization Rail

A rail suitable for the Upper Roller wheels to roll on and sturdy enough to help stabilize the Ball Pass Assembly.

145 Upper Channel

A channel that receives balls from the Collector.

455 Upper Roller

These are roller coaster type wheels used to provide stability from horizontal movements.

DEFINITIONS

Driver Movement Instruction Set:

The formatted instructions used by the driver in a motion control system to position the component to the desired location.

Next Shot:

In a program, the shot that is up next to be rendered.

Next Pass:

In a program, the pass that is up next to be rendered.

End Program Condition:

This is a state achieved when the control software examines a set of conditions and determines that the program is to conclude.

End Program Indicator:

This is an indicator sent to the control software to stop activities in the All Shot. This indicator is sent by All Shot components in communication with the software.

End Program Status:

Refers to a group of programs ending conditions or indicators that include End Program Condition and End Program Indicator.

Pass Trigger:

The event that is initiated by the software signal for a pass to be thrown.

System Status:

The state that the various components of the All Shot are in at a given instance.

Referenced Shot Position:

A position on the Shooting Platform where a shooter is expected to stand for the next shot. The software uses this location as reference to render shots and eject passes.

Return Process:

The steps that are endured by a ball to be collected and returned to the ejector.

Shot Taken:

A condition when the software has determined the shooter has shot the ball for the last completely rendered shot.

Operational Mode:

Refers to a group of indicators that represent the state of the All Shot. It is based on the orientation of the major components.

Current Shot:

The shot that is currently rendered.

Return System:

The components that are used to collect, lift, and deposit balls into the ejectors.

Next Handle:

The next Ball Carriage Handle to be encountered by a Lift Clamp while in motion.

Clamp Next Handle:

The process the Lift Clamp follows, as directed by the control software, to clamp the Next Handle.

Retract:

The act of the Solenoid Driven Clamp being pulled away from Slide Tower as far as possible.

Un-clamp Next Handle:

The process the Lift Clamp follows, as directed by the control software, to un-clamp the current clamped Ball Carriage Handle that is closest to the Carriage Well.

Top Ball Carriage:

The Ball Carriage that is currently at the top of the Ball Carriage stack in a Carriage Well.

Lowest Clamped Ball Carriage:

The clamped Ball Carriage that is closest to the Carriage Well.

Ball Clearance Height:

A specified height above a Claw in a given Lift Tower that the Lowest Clamped Ball Carriage is to be as not to interfere with the Claw when fully extended.

Maximum Slant Position:

The angle of the Slant Floor where the front tip is as close to the Foundation as functionally possible.

Center Referenced:

It is a reference plane that extends indefinitely in all directions that passes through the Rear Wall and Front Wall at right angles and splits the Foundation along a center line.

Current Carriage:

The carriage that is currently on top of the stack.

Shot Ball:

A ball that has been shot and is engaged in the collection or return process.

Next Carriage:

The next Ball Carriage to be lifted in the ball lift process.

Next Catch Ball:

The first ball outside of the catch in a Side Ball Channel.

Motion Control System:

Currently this is a stepper motor with compatible driver capable of receiving digital instructions from microprocessor devices, including PCs, PLCs, logic controllers, etc., via serial communication, such as Ethernet or wireless. This motor system could alternatively employ non-electromechanical components, including pneumatic or hydraulic driven systems.

Ball Channel:

This is made of three curved panels laid out to fit on a half-circle equally spaced such that basketballs may freely roll under the force of gravity. The panels are held in place by cross supports fitted beneath.

Kinect Array:

A series of Kinect devices, or comparable motion detection devices, that provide complete coverage of a designated area.

User Interface:

This is a computerized device, such as a PC tablet, laptop, etc. configured to receive touch screen and voice commands from the user.

Stationary Ball Count Array:

The Stationary Ball Count Array uses through beam photoelectric sensors and is mounted on a Ball Channel so as to detect the stationary (stop at a position) presence of each ball in the channel where the flow of balls is controlled. A circuit board with a microcontroller and serial communication capabilities, such as Bluetooth or Ethernet, is used to communicate the array state.

Dynamic Ball Count Array:

The Dynamic Ball Count Array uses through beam photoelectric sensors mounted at the ingress and egress of a ball control component (or connected components). A circuit board with a microcontroller and serial communication capabilities, such as Bluetooth or Ethernet, is used to communicate the array state.

Network Ready Actuator:

This is an electric actuator with communication capabilities provided by a circuit board with a microcontroller and serial communication capabilities, such as Bluetooth or Ethernet.

Network Connected PLC:

A PLC with communications capability, such as Bluetooth or Ethernet. Can also be a PLC that can communicate with a circuit board that has serial communication capabilities such as Bluetooth or Ethernet.

Transverse System:

A Transverse System is comprised of a Motion Control System used with and attached pinion (gear) that turns on a rack (track).

Shot Render:

The condition where the Current Shot is completely in place (and all appropriate components are locked in position).

Pass Render:

The Ejector Assembly is in place and the Ejector is rotated to eject a ball over the current Referenced Shot Position.

Ball Corral:

The Ball Corral consists of two Motion Control Systems, each with a flat plate mounted to the motor shaft. Each Motion Control System attaches on either side of the Channel directly across from one another. A ball is contained when the forward tips of the plates are held close together. A single corralled ball is released when the rear tips of the plates are snapped close together in front of the next ball (the ball behind the corralled ball).

Diagnostic Mode:

When The All Shot software is interfacing with a technician to resolve problems with one or more of its components.

System Event:

A software event initiated by one or more components in the All Shot or internally generated by the software.

User Event:

A software event initiated by the user.

EMBODIMENT ONE

Description:

This embodiment of the All Shot, a basketball shooter uses a computer system, a Controller 101, to configure (render) any shot and passing combination permitted by the system. Instead of having the shooter move around a court to create a shot, the All Shot moves the Basketball Rim 103 (FIG. 3) and Backboard 105 (FIG. 3) to create a shot as referenced from a designated position on a Shooting Platform 107 (FIGS. 1 and 5). Additionally, a basketball ejector system, the Ball Ejector Assembly 109 (FIGS. 1 and 4), translates and rotates to create passes to a Reference Shot Position. A slanted floor, a Slant Floor 117 (FIG. 5), and a ball collector, a Ball Collector 111 (FIGS. 1 and 2), are used to gather shot balls. Connected channels and lifts are used to reload an Ejector 113 (FIGS. 1 and 4). A Primary Monitor 451 (FIG. 1) is used to display information about system operations.

As currently conceived for this embodiment, a Foundation 115 (FIG. 1) is made of concrete in rectangular shape of width 30 feet and length 60 feet (see FIG. 1). The Foundation 115 (FIG. 1) may also be made from other material, such as metal or other construction material. Also the dimensions of the Foundation 115 (FIG. 1) may be altered while still maintaining functionality.

The Shooting Platform 107 (FIGS. 1 and 5), a flat surface made of wood or a material suitable for dribbling and shooting and other athletic activities, is shown. The Shooting Platform 107 (FIGS. 1 and 5) is centered on the width of the Foundation 115 (FIG. 1). The width of the Platform 107 (FIGS. 1 and 5) is such that a space of approximately three feet exists on both sides, as measured from the Platform 107 (FIGS. 1 and 5) edge to the foundation edge. The Platform 107 (FIGS. 1 and 5) starts at a Rear Wall 119 and extends forward enough to allow the shooter to adequately maneuver and shoot a ball. As currently conceived, a metal, or a material of sufficient strength, a Platform Frame 213 (FIGS. 1 and 5) of approximate height three feet supports the Platform 107 (FIGS. 1 and 5). Also the height dimension of the Frame may be altered while still maintaining functionality.

A Slant Floor Base Frame 123 (FIG. 5) is connected to the Shooting Platform 107 (FIGS. 1 and 5) by an Industrial Hinge 121 (FIG. 5). The Slant Floor Base Frame 123 (FIG. 5) may be rotated on the hinge in such a manner as to be horizontal to the Foundation 115 (FIG. 1) or tilted downward. When at Maximum Slant, the Slant Floor Base Frame 123 (FIG. 5) rests on a Forward Slant Support 125 (FIG. 1) near a Forward Wall 219. The Slant Floor 117 (FIG. 5), as it is currently conceived, is comprised of sections of portable basketball court fitted and secured to the Slant Floor Base Frame 123 (FIG. 5). The Slant Floor 117 (FIG. 5) can also be made of a different material such as plastic or rubber. Fitted floors are available at Robbins Inc., 4777 Eastern Avenue Cincinnati, Ohio 45226. Another manufacture that offers suitable portable floor sections is Pacific Floor Company, Inc. 9300 Oso Ave. Chatsworth, Calif. 91311.

As currently conceived, a Hatch Dead Spot Assembly 127 (FIG. 1) has a cover, a Hatch 129 (FIG. 1), Hatch Motor 193 and a frame support with damping surface, a Dead Spot 131 (FIG. 1). The Hatch Motor 193 is a Motion Control System attached to open and close the Hatch 129 (FIG. 1). The Hatch 129 (FIG. 1) is center-hinged to the Shooting Platform 107 (FIGS. 1 and 5) with its front portion rested on the Dead Spot 131 (FIG. 1). Additionally, it is currently conceived that the Hatch 129 (FIG. 1) be made of a material suitable to support a shooter engaged in athletic activity, such as a rigid plastic or a padded metal sheet. It is further currently conceived that the Dead Spot 131 (FIG. 1) be made of a rigid plastic or padded metal covered with damping material. Other suitable materials may be used for the Hatch 129 (FIG. 1) and Dead Spot 131 (FIG. 1). The Dead Spot 131 (FIG. 1) is sloped such that balls that roll off of it will be directed down the Slant Floor 117 (FIG. 5).

A Forward Slant Support 125 (FIG. 1) supports the Slant Floor Base Frame 123 (FIG. 5) while limiting its maximum downward slant. A Slant Floor Lift 133 (FIG. 1) is used to lower or lift the Slant Floor Base Frame 123 (FIG. 5) as it rotates on the Industrial Hinge 121 (FIG. 5). The Ball Collector 111 (FIGS. 1 and 2) is shown adjacent to the forward edge of the Slant Floor 117 (FIG. 5) when the Slant Floor 117 (FIG. 5) is in Maximum Slant position. The bottom shelf of the Ball Collector 111 (FIGS. 1 and 2) is situated at a downward slant such that a ball may roll at approximately the same angle from the Slant Floor 117 (FIG. 5) onto and down the Ball Collector 111 (FIGS. 1 and 2). Inside the Ball Collector 111 (FIGS. 1 and 2) a Ball Guide 135 (FIG. 2) left of center reference and a second Ball Guide 135 (FIG. 2) right of center reference directs collected balls toward the center-rear of the Ball Collector 111 (FIGS. 1 and 2).

Ball jams are broken up by a Ball Dejammer 137 (FIG. 6), which is placed where the ball guides converge close enough to cause ball jamming. Currently it is conceived that the Ball Dejammer 137 (FIG. 6) pushes tapered panels, made of a suitable rubber, through slits in the bottom shelf of the Ball Collector 111 (FIGS. 1 and 2). Also currently conceived, a Ball Dejammer Sensor 139 (FIG. 6), a through beam photoelectric sensor connected to a circuit board with a microcontroller and serial communication capability, such as wireless or Ethernet, are placed to detect ball jams.

Three ball channels are used to assist the delivery of balls to a Lift Tower 143 (FIGS. 1 and 2) from the Ball Collector 111 (FIGS. 1 and 2). An Upper Channel 145 (FIGS. 2 and 6) receives balls from the rear of the Ball Collector 111 (FIGS. 1 and 2), which are flow-controlled by a Ball Corral. Also, a Channel Hub 147 (FIG. 2) directs balls to either Lift Channel 151 (FIGS. 2 and 6). The particular lower channel a ball is directed towards depends on the orientation of a Channel Select Guide 149 (FIGS. 2 and 6).

The Channel Select Guide 149 (FIGS. 2 and 6) is centrally mounted in the Channel Hub 147 (FIG. 2). The Channel Select Guide 149 (FIGS. 2 and 6) is currently conceived to consist of a Motion Control System with an attached flat plate, a Select Panel 153 (FIGS. 2 and 6). The attached Select Panel 153 (FIGS. 2 and 6) is on the motor shaft such that balls may be diverted to one or the other lower channels based on rotation of the motor. The Select Panel 153 (FIGS. 2 and 6) is made of a material suitable to redirect balls, such as plastic, metal, etc. When the Select Panel 153 (FIGS. 2 and 6) is rotated over the Lift Channel 151 (FIGS. 2 and 6) left of center reference, balls are directed to the Lift Channel 151 (FIGS. 2 and 6) right of center reference, and vice versa.

As currently conceived, support for the Ball Collector 111 (FIGS. 1 and 2), Upper Channel 145 (FIGS. 2 and 6), Channel Hub 147 (FIG. 2), and each Lift Channel 151 (FIGS. 2 and 6) is provided by a Collect Channel Support 157 (FIG. 2), which is attached, directly or indirectly, to the Foundation 115 (FIG. 1) underneath the aforementioned components. Support can be provided by other methods that directly or indirectly attach to the foundation without interference with other components' operations.

As currently conceived each Lift Channel 151 (FIGS. 2 and 6) has a Ball Corral integrated into it to control the exit of a ball into an adjacent Lift Tower 143 (FIGS. 1 and 2), as well as a Stationary Ball Count Array attached. Other means of ball control, such as a ball turnstile or a alternative ball count method could be used.

In this embodiment, as currently conceived, a Ball Carriage 159 (FIGS. 2 and 10) stack is used in each Lift Tower 143 (FIGS. 1 and 2). Alternatively a single Ball Carriage 159 (FIGS. 2 and 10) can be used while still maintaining functionality. When in the complete stacked state all ball carriages in a Lift Tower 143 (FIGS. 1 and 2) are stacked in a Carriage Well 189 (FIG. 2) adjacent to the Lift Channel 151 (FIGS. 2 and 6).

Each Ball Carriage 159 (FIGS. 2 and 10), has a component used to carry a ball, a Ball Cradle 161 (FIG. 2), and another used in the lifting of the Ball Carriage 159 (FIGS. 2 and 10), a Ball Carriage Handle 165 (FIG. 10). The Ball Cradle 161 (FIG. 2) has an area for the ball to rest on and a frame, used for support and stacking, that does not interfere with a Ball Claw 163 (FIG. 1) when a ball is being removed. As currently conceived, each Ball Cradle 161 (FIG. 2) is identical, while the Ball Carriage Handle 165 (FIG. 10) of each Ball Carriage 159 (FIGS. 2 and 10) differs based on the position in the stack.

The Ball Carriage Handle 165 (FIG. 10) length and width are determined by the position of the associated Ball Carriage 159 (FIGS. 2 and 10) in the stack. The higher the Ball Carriage 159 (FIGS. 2 and 10) is on the stack the shorter and wider the Ball Carriage Handle 165 (FIG. 10), and the longer an associated Handle Ledge 166 (FIG. 10). The Ball Carriage Handle 165 (FIG. 10) of each Ball Carriage 159 (FIGS. 2 and 10) in the stack is partially inserted in at least one Slide Track 169 (FIGS. 2 and 10), of a Slide Tower 171 (FIGS. 2 and 10). Each Ball Carriage 159 (FIGS. 2 and 10) travels up and down in the Slide Tower 171 (FIGS. 2 and 10) without interfering with any other Ball Carriage 159 (FIGS. 2 and 10). The Slide Tower 171 (FIGS. 2 and 10) is attach to the Foundation 115 (FIG. 1) and extends upward to a distance where all the carriages in the stack may rise completely above the fully extended Ball Claw 163 (FIG. 1) while remaining in the Slide Tower 171 (FIGS. 2 and 10). Each of the two sides of the Ball Carriage Handle 165 (FIG. 10) slides in its own Slide Track 169 (FIGS. 2 and 10), which are equal distance from the center Slide Track 169 (FIGS. 2 and 10), with the exception of the Ball Carriage Handle 165 (FIG. 10) of the bottom Ball Carriage 159 (FIGS. 2 and 10), which slides in a single Slide Track 169 (FIGS. 2 and 10).

Alongside of the Slide Tower 171 (FIGS. 2 and 10), is a Lift Beam 175 (FIGS. 2 and 10). As currently conceived, the Lift Beam 175 (FIGS. 2 and 10) is a metal I-beam with one face directed at the Slide Tower 171 (FIGS. 2 and 10) and a metal square tube attached on the back surface. The Lift Beam 175 (FIGS. 2 and 10) is mounted on the Foundation 115 (FIG. 1) aligned approximately parallel to the Slide Tower 171 (FIGS. 2 and 10).

A Lift Clamp 173 (FIG. 10) is shown secured to the Lift Beam 175 (FIGS. 2 and 10) by its linear motion slider on one side, and a Clamp Lift Motor 227 (FIG. 10), a Transverse System, on the other. The Lift Clamp 173 (FIG. 10) has its track attached to square tubing on the Lift Beam 175 (FIGS. 2 and 10). A clamp, a Solenoid Driven Clamp 183 (FIG. 10), is attached to the Lift Clamp 173 (FIG. 10) with its jaws directed towards the Slide Tower 171 (FIGS. 2 and 10). A multi-position linear actuator, a Clamp Actuator 197 (FIGS. 2 and 10), is used to extend the Solenoid Driven Clamp 183 (FIG. 10). A Clamp Logic Controller 195 (FIG. 10), a Network Connected PLC, is connected to the Solenoid Driven Clamp 183 (FIG. 10) and Clamp Actuator 197 (FIGS. 2 and 10). A Lift Linear Encoder 401 (FIG. 10), a linear encoder, is connected to the Lift Clamp 173 (FIG. 10). A multi position linear actuator may be supplied by Compact Automation Products, 105 Commerce Way Westminster, S.C. 29693.

The Ball Claw 163 (FIG. 1) is shown attached to the underside of a Side Ball Channel 177 (FIG. 4). The Ball Claw 163 (FIG. 1) is capable of extending into the Lift Tower 143 (FIGS. 1 and 2) sufficiently to dislodge balls and retracts completely out of the Lift Tower 143 (FIGS. 1 and 2).

A Side Ball Channel 177 (FIG. 4) extends from the Lift Tower 143 (FIGS. 1 and 2) approximately to the Rear Wall 119 at a tilt determined by ball travel rate specifications. Currently it is conceived that the Side Ball Channel 177 (FIG. 4) tilts downward from its highest point, near the Lift Tower 143 (FIGS. 1 and 2), at a 2 degree angle. It is further conceived that the height of the Side Ball Channel 177 (FIG. 4) at its highest point be sufficiently high enough to support ball delivery to the Ejector 113 (FIGS. 1 and 4) in use. The tilt and height dimensions may be changed while maintaining functionality.

Support for the Side Ball Channel 177 (FIG. 4) is provided by a sequence of connected supports. A Load Support 179 (FIGS. 4 and 7) directly supports the Side Ball Channel 177 (FIG. 4). In turn the Load Support 179 (FIGS. 4 and 7) is supported by a Support Beam 181 (FIG. 4), which is supported by other supports (discussed below). This sequence of supports is utilized at various locations along the Side Ball Channel 177 (FIG. 4). A Catch Support 185 (FIG. 7) is attached to each side of each Load Support 179 (FIGS. 4 and 7). In turn the Catch Support 185 (FIG. 7) supports a Catch Frame Rail 141 (FIG. 7) at various locations along the Side Ball Channel 177 (FIG. 4).

A Ball Catch Frame Support 187 (FIGS. 4 and 7), a support that arches over the Side Ball Channel 177 (FIG. 4) without interfering with passing balls is mounted on a Catch Frame Rail 141 (FIG. 7) on each side of the channel. A Ball Stop 199 (FIGS. 4 and 7), currently conceived to be rubber covered flat plate connected to a Motion Control System, is attached to the Ball Catch Frame Support 187 (FIGS. 4 and 7) approximately where balls enter a Ball Catch 191 (FIG. 7), the front. The Ball Shunt Stand 203 (FIGS. 4 and 3) is mounted on the Ball Catch Frame Support 187 (FIGS. 4 and 7), on the end furthest away from where balls enter the Ball Catch 191 (FIG. 7), the rear. A Catch Lift Actuator 201 (FIGS. 4 and 7) is attached to the Ball Catch Frame Support 187 (FIGS. 4 and 7) and Ball Catch 191 (FIG. 7) such that by extending the actuators the Ball Catch 191 (FIG. 7) is lifted upward without significantly changing its slant. A Dynamic Ball Count Array is placed on the Ball Load Shunt 207 (FIG. 4) and Ejector 113 (FIGS. 1 and 4) exit to count balls in the Ejector 113 (FIGS. 1 and 4).

The Ball Catch 191 (FIG. 7) is shown fitted into the Side Ball Channel 177 (FIG. 4) as to allow balls to roll into it. The Ball Catch 191 (FIG. 7) is a Ball Channel with a mounted Ball Stop 199 (FIGS. 4 and 7) and a mount for the Catch Lift Actuator 201 (FIGS. 4 and 7). This Ball Stop 199 (FIGS. 4 and 7) is used to control movement of balls inside the Ball Catch 191 (FIG. 7).

As currently conceived, the Catch Lift Actuator 201 (FIGS. 4 and 7) is used to lift the Ball Catch 191 (FIG. 7) into position so that when the Ball Stop 199 (FIGS. 4 and 7) is rotated out of the Ball Catch 191 (FIG. 7) balls roll into a Ball Shunt 205 (FIG. 4). The Ball Shunt 205 (FIG. 4) is mounted on a Ball Shunt Stand 203 (FIGS. 4 and 3) so balls may flow down over the side of the Side Ball Channel 177 (FIG. 4) into a Ball Load Shunt 207 (FIG. 4).

A Linear Motion Bearing Housing 209 (FIGS. 4 and 7) assists in the movement of the Ball Catch Frame Support 187 (FIGS. 4 and 7) as it rides up and down the Side Ball Channel 177 (FIG. 4). Currently it is conceived that the Linear Motion Bearing Housing 209 (FIGS. 4 and 7) assists in the transfer of movement (the force to move) from a Ball Ejector Assembly 109 (FIGS. 1 and 4) via the force applied by a Movement Arm 211 (FIGS. 4 and 7) as the Ball Ejector Assembly 109 (FIGS. 1 and 4) moves. It is also currently conceived that the Linear Motion Bearing Housing 209 (FIGS. 4 and 7) is a cylindrical tube made of a strong load-bearing metal, sufficient to function under the applied force, internally lined with sufficiently strong linear bearings. The Linear Motion Bearing Housing 209 (FIGS. 4 and 7) and Movement Arm 211 (FIGS. 4 and 7) are of length so that adequate force is applied to the Ball Catch Frame Support 187 (FIGS. 4 and 7) for movement throughout the range of travel. Independent synchronized propulsion systems could be used on each component instead of the Linear Motion Bearing Housing 209 (FIGS. 4 and 7) and Movement Arm 211 (FIGS. 4 and 7) to create synchronized movements.

A Carriage and Structure Support Frame 215 (FIGS. 1 and 3), as currently conceived, is constructed of six inch steel I-Beam anchored to the Foundation 115 (FIG. 1) close to the Foundation 115 (FIG. 1) perimeter. The Carriage and Structure Support Frame 215 (FIGS. 1 and 3) supports forces applied by various systems, such as the Shot Carriage Position System 261 (FIG. 3), and other support components, including support beams. As currently conceived, the beams at the top of the Carriage and Structure Support Frame 215 (FIGS. 1 and 3) are to be flat and level, suitable for the Shot Carriage Position System 261 (FIG. 3) movement operations. On the underside of the top beams is a Brake Rail 225 (FIG. 3) used to provide a stationary surface for a Forward Backward Carriage Brake 229 (FIG. 3) to be applied.

As currently conceived a Base Support Beam 231 (FIG. 4) is attached to the Carriage and Structure Support Frame 215 (FIGS. 1 and 3) at various locations. Also as currently conceived the u-shaped beam is attached to base support beams in various locations. Other types of supports can be used here instead, including but not limited to supports attached to the Foundation 115 (FIG. 1) or otherwise attached to the Carriage and Structure Support Frame 215 (FIGS. 1 and 3).

An Interior Containment Wall 233 is supported by beams, Support Beam 181 (FIG. 4), at various locations. The Interior Containment Wall 233 separates the Activity Area 235 from the Machinery Area 237. Gaps are provided in the Interior Wall 233, a Platform Slot 243 and Arm Slot 245, to provide access from the Machinery Area 237 to the Activity Area 235, and vice versa. The Ball Ejector Assembly 109 (FIGS. 1 and 4) is used to position the Ejector 113 (FIGS. 1 and 4) inside the Activity Area 235, while repositioning the Ball Catch Frame Support 187 (FIGS. 4 and 7) on the Catch Frame Rail 141 (FIG. 7) in the Machinery Area 237. The Ball Ejector Assembly 109 (FIGS. 1 and 4) travels partially in the Machinery Area 237 and partially in the Activity Area 235.

Within the Machinery Area 237, a Foundation Base Rail 239 (FIG. 1) is secured to the Foundation 115 (FIG. 1) along the length of the Foundation 115 (FIG. 1) near the Interior Wall 233. Linear sliders on an Ejector Base Support 241 (FIG. 4) are used to allow the Ejector Base Support 241 (FIG. 4) to roll on the Foundation Base Rail 239 (FIG. 1). As currently conceived, the Ejector Base Support 241 (FIG. 4) is a metal rectangular box with a low center of mass of height sufficient to allow an Ejector Platform 249 (FIG. 4) into the Activity Area 235 through the Platform Slot 243.

An Ejector Stabilization Arm 247 (FIGS. 4 and 7) is shown in the Activity Area 235. It is currently conceived that the Ejector Stabilization Arm 247 (FIGS. 4 and 7), attached to the Ejector Platform 249 (FIG. 4), extends upward approximately parallel to the Interior Wall 233 with a U-shaped curved end that bends into the Machinery Area 237. An Upper Roller 455 (FIG. 4) and Ejector Propulsion Motor 253 (FIG. 4) are mounted onto a vertical face of the U-shaped end of the Ejector Stabilization Arm 247 (FIGS. 4 and 7). The Upper Roller 455 (FIG. 4) rides on the Top Stabilization Rail 251 (FIG. 4) when the Ball Ejector Assembly 109 (FIGS. 1 and 4) is in motion.

An Ejector Propulsion Motor 253 (FIG. 4), a Transverse System, has its rack attached to an Ejector Motion Platform 277 (FIG. 4). The Ejector Propulsion Motor 253 (FIG. 4) directly propels the Ball Ejector Assembly 109 (FIGS. 1 and 4) to transverse along the Foundation Base Rail 239 (FIG. 1) and the Top Stabilization Rail 251 (FIG. 4). Also the Ejector Propulsion Motor 253 (FIG. 4) indirectly pushes the Ball Catch Frame Support 187 (FIGS. 4 and 7) along the Catch Frame Rail 141 (FIG. 7).

A Ball Load Shunt 207 (FIG. 4) is held in position relative to the Ejector Stabilization Arm 247 (FIGS. 4 and 7) by a Ball Load Shunt Stabilizer 255 (FIG. 4). As currently conceived, the Ball Load Shunt Stabilizer 255 (FIG. 4) is made of rigid material, such as steel, to maintain the position and orientation of the Ball Load Shunt 207 (FIG. 4) with respect to the Ball Shunt 205 (FIG. 4). The Ball Load Shunt Stabilizer 255 (FIG. 4) can also be made of other suitably rigid material. This allows balls passed in from the Ball Shunt 205 (FIG. 4) to pass through to the Ball Load Shunt 207 (FIG. 4) to the Ejector 113 (FIGS. 1 and 4) with minimum interference.

In this embodiment, an Ejector Rotation Motor 257 (FIG. 4), Ejector Rotation Mount 259 (FIG. 4), and Ejector 113 (FIGS. 1 and 4), are functionally attached to the Ejector Platform 249 (FIG. 4). The Ejector Rotation Motor 257 (FIG. 4) is a Motion Control System with a gear on the motor shaft and mounted to a Mounting Bracket 307 (FIG. 4). The Bracket is attached to the Ejector Platform 249 (FIG. 4) in such a way that the Ejector Rotation Motor 257 (FIG. 4) gear rotates the Ejector Rotation Mount 259 (FIG. 4). The Ejector 113 (FIGS. 1 and 4) is secured to the Ejector Rotation Mount 259 (FIG. 4) so rotation of the Ejector 113 (FIGS. 1 and 4) corresponds to rotation of the Ejector Rotation Mount 259 (FIG. 4). An Ejector Rotational Encoder, a rotational encoder, is attached to the Ejector Rotation Motor 257 (FIG. 4).

A Pass Trigger Board 453 is a circuit board that includes a microcontroller and serial communication capabilities, such as Bluetooth or Ethernet, used to communicate to trigger the Ejector 113 (FIGS. 1 and 4) to pass a ball. Also included on the Board 453 is an infrared LED emitter suitable to remotely activate the Ejector 113 (FIGS. 1 and 4) remote control sensor. The infrared LED is connected to a Pulse Width Modulation enabled pin on the microcontroller so as to emit a signal to activate the Ejector 113 (FIGS. 1 and 4) to pass when prompted. The Board 453 is attached to the Ejector 113 (FIGS. 1 and 4) such that the remote control of the Ejector 113 (FIGS. 1 and 4) can receive the emitted signal from the Board 453.

The Pass Trigger Board 453 communicates with the Controller 101 via serial communication. Relative linear alignment position between the Ball Ejector Assembly 109 (FIGS. 1 and 4) and Ball Catch Frame Support 187 (FIGS. 4 and 7), while in motion or stationary, is maintained by use of the Movement Arm 211 (FIGS. 4 and 7). The Movement Arm 211 (FIGS. 4 and 7), as currently conceived, uses a Movement Base 305 to connect to the Ejector Stabilization Arm 247 (FIGS. 4 and 7) and maintain its vertical orientation. Motion of the Ball Ejector Assembly 109 (FIGS. 1 and 4) is transferred to the Ball Catch Frame Support 187 (FIGS. 4 and 7) by the Movement Arm 211 (FIGS. 4 and 7) pushing against the Linear Motion Bearing Housing 209 (FIGS. 4 and 7) as the Ball Ejector Assembly 109 (FIGS. 1 and 4) moves. The Movement Arm 211 (FIGS. 4 and 7) also slides inside the Linear Motion Bearing Housing 209 (FIGS. 4 and 7) as the Ball Ejector Assembly 109 (FIGS. 1 and 4) travels. An Ejector Linear Encoder 403 (FIG. 4), a linear encoder, is attached to the Ball Ejector Assembly 109 (FIGS. 1 and 4).

The Shot Carriage Position System 261 (FIG. 3) is functionally attached to the top of the Carriage and Structure Support Frame 215 (FIGS. 1 and 3). In this embodiment, the Shot Carriage Position System 261 (FIG. 3) currently includes a Shot Carriage Position System 261 (FIG. 3), Rotational Lift Position System 263 (FIG. 9), and Rim Backboard Support Assembly 265 (FIGS. 3 and 9).

A Forward Backward Carriage 269 (FIG. 3) of the Shot Carriage Position System 261 (FIG. 3) positions the Rim Backboard Support Assembly 265 (FIGS. 3 and 9) by moving forwards, away from the Shooting Platform 107 (FIGS. 1 and 5), and backwards, towards the Shooting Platform 107 (FIGS. 1 and 5). As currently conceived, the Forward Backward Carriage 269 (FIG. 3) has a frame made of two I-beams held essentially parallel by two metal plates located near each end of the beams. It is further currently conceived that a linear motion slider is attached to the bottom of each metal plate located at each end of the frame of the Forward Backward Carriage 269 (FIG. 3). Also it is currently conceived that a Forward Backward Propulsion System 271 (FIG. 3), a Transverse System with its motor and driver attached to the Forward Backward Carriage 269 (FIG. 3) and its rack secured to a Forward Backward Platform 273 (FIG. 3), be used for movement. The Forward Backward Carriage 269 (FIG. 3) has a brake, the Forward Backward Carriage Brake 229 (FIG. 3), used on a Brake Rail 225 (FIG. 3) for added stability. The Forward Backward Platform 273 (FIG. 3) is made of flat plate connected to the Carriage and Structure Support Frame 215 (FIGS. 1 and 3). A Forward Backward Encoder 407 (FIG. 3) is attached to the Forward Backward Carriage 269 (FIG. 3).

A Left Right Carriage 275 (FIG. 3) of the Shot Carriage Position System 261 (FIG. 3) positions the Rim Backboard Support Assembly 265 (FIGS. 3 and 9) by moving left or right as referenced from a shooter on the Shooting Platform 107 (FIGS. 1 and 5). As currently conceived, the Left Right Carriage 275 (FIG. 3) has a frame made of two I-beams held essentially parallel by two metal plates located near each end of the beams. It is further currently conceived that a linear motion slider is attached to the bottom of each metal plate located at each end of the frame of the Left Right Carriage 275 (FIG. 3). Also it is currently conceived that the Left Right Propulsion System 279 (FIG. 9), a Transverse System with its motor and driver attached to the Left Right Carriage 275 (FIG. 3) and its rack secured to the Left Right Platform 281 (FIG. 3), be used for movement. The Left Right Carriage 275 (FIG. 3) has a brake, the Left Right Carriage Brake 217 (FIG. 9), used on the Top Brake Rail 457 (FIG. 3) for added stability. The Left Right Platform 281 (FIG. 3) is made of flat plate connected to the Forward Backward Carriage 269 (FIG. 3). A Left Right Encoder 409 (FIG. 3) is attached to the Left Right Carriage 275 (FIG. 3).

As currently conceived, the Rim Backboard Support Assembly 265 (FIGS. 3 and 9) includes the Basketball Rim 103 (FIG. 3), Backboard 105 (FIG. 3), a Rim Backboard Support 283 (FIG. 3), and a Backboard Position Control Bar 285 (FIGS. 3 and 8). The Basketball Rim 103 (FIG. 3) is attached to the Backboard 105 (FIG. 3). The Backboard 105 (FIG. 3) is attached to the Rim Backboard Support 283 (FIG. 3). The Rim Backboard Support 283 (FIG. 3) is attached to the Backboard Position Control Bar 285 (FIGS. 3 and 8). All support members are sufficiently stable enough to conduct all basketball training activities when the bar is secure (shot completely rendered). Currently it is conceived that the Backboard Position Control Bar 285 (FIGS. 3 and 8) has two flat surfaces on opposite sides of the bar at least as long as the maximum up-down movement of the Rim Backboard Support Assembly 265 (FIGS. 3 and 9).

A Rotation Control Motor 287 (FIG. 8) is shown mounted to the underside of the Rotate Lift Support Plate 291 (FIGS. 3, 8, and 11) of the Left Right Carriage 275 (FIG. 3). As currently conceived, the Rotation Control Motor 287 (FIG. 8) is a Motion Control System with a gear attached to the shaft of the motor. Also as currently conceived, a Linear Rotational Controller 289 (FIG. 8) is a linear bearing fitted with an attached gear on its outer surface. The Linear Rotational Controller 289 (FIG. 8) is positioned atop a bearing which is atop the Rotate Lift Support Plate 291 (FIGS. 3, 8, and 11) so the rotation of the gear on the Rotation Control Motor 287 (FIG. 8) rotates the Linear Rotational Controller 289 (FIG. 8). In this configuration, the Backboard Position Control Bar 285 (FIGS. 3 and 8) passes through a hole in the Rotate Lift Support Plate 291 (FIGS. 3, 8, and 11) and slides up and down and rotates inside the Linear Rotational Controller 289 (FIG. 8). A Rim Rotational Encoder 411 (FIG. 8), a rotational encoder, is attached to the Linear Rotational Controller 289 (FIG. 8) to determine the rotation of the Rim Backboard Support Assembly 265 (FIGS. 3 and 9).

A Rim Backboard Lift Bracket 293 (FIGS. 3 and 8) is affixed on top of the Linear Rotational Controller 289 (FIG. 8). A Rim Lift Motor 295 (FIGS. 3, 8, 9, and 11), a Transverse System, is mounted near the top of the Rim Backboard Lift Bracket 293 (FIGS. 3 and 8) so the motor shaft protrudes through the plate. The rack of the Rim Lift Motor 295 (FIGS. 3, 8, 9, and 11) is attached to one of the flat faces of the Backboard Position Control Bar 285 (FIGS. 3 and 8). A support roller and the pinion from the Rim Lift Motor 295 (FIGS. 3, 8, 9, and 11) are used to pin the Backboard Position Control Bar 285 (FIGS. 3 and 8). A Rim Linear Encoder 413 (FIG. 11), a linear encoder, is attached to the Backboard Position Control Bar 285 (FIGS. 3 and 8).

A Rendered Shot Brake 297 (FIG. 9) is attached to the bottom of the Rotate Lift Support Plate 291 (FIGS. 3, 8, and 11) situated so the Backboard Position Control Bar 285 (FIGS. 3 and 8) passes through it. The Rendered Shot Brake 297 (FIG. 9) uses an electromagnetic braking system to add stability to the Backboard Position Control Bar 285 (FIGS. 3 and 8) once a shot has been rendered. When the Backboard Position Control Bar 285 (FIGS. 3 and 8) is in motion for rotational and/or lift the Rendered Shot Brake 297 (FIG. 9) is disengaged. It is re-engaged once the shot rendering process is complete.

In this embodiment, the Controller 101 receives data from components not directly connected to the collect, return, or render processes. As currently conceived the All Shot is equipped with a Kinect Array, a 94Fifty Basketball, and a Doppler Radar based tracker. One or more of these devices may be removed and the system will continue to function. Also, any or all of these components may be removed and replaced with comparable components used to track and quantify shooters and ball(s) movements.

It is currently conceived, in this embodiment, that the Kinect is PC connected, by a dedicated PC or a properly equipped circuit board, to allow a communication connection with the Controller 101 via wireless (such as Bluetooth) or with a cable connection (such as Ethernet). Other methods of communication, such as each Kinect in the array being connected directly to the Controller 101 could also be used.

In this embodiment, it is currently conceived that the 94Fifty basketball be connected indirectly to the Controller 101, by a dedicated PC or a properly equipped circuit board, running an Android OS emulator, such as Blue Stacks or Andy. The PC or circuit board communicates with the Controller 101 via wireless (such as Bluetooth) or with a cable connection (such as Ethernet). Other connection configurations could be used, such as a direct connection with the emulator software run on the Controller 101.

It is currently conceived, in this embodiment, that the Doppler Radar based system be connected by the method available on the particular unit (USB, Ethernet, or other serial connector, etc.) Other suitable methods for communication may be used instead, when available. A Doppler Radar system suitable for indoor (interior) use may be purchased from Trackman 6575 White Pines Drive, Brighton, Mich. 48116.

The All Shot has components connected to the Controller 101 that are highly autonomous, running local software, such as Computer Pads running facial recognition, voice recognition, and/or touch pad software, that may or may not communicate with the Controller 101. These components may have a primary connection with another component, such as a camera to a monitor, or be involved with internet uploading or streaming. The computer may use a dongle or connect, if needed, to connect to these systems over low throughput connection.

In this embodiment, as currently conceived, the Controller 101 is a custom constructed computer with sufficient built in USB, Ethernet, HDMS, and other ports with enough computational power, Memory, etc., for the real-time and high data rate components. It is further currently conceived that the software being ran on the Controller 101 be multi-threaded with higher priority threads connect to components involved in shot render, pass render, ball collection, and ball return processes. Other configurations, such as a distributed system of networked computers that are primarily concerned with a sub set of components, could be used.

Software for the All Shot is used to initialize the system, react to input from the user or system components, and to execute shooting programs. FIG. 12 shows the flow of these processes.

As currently conceived, the software used to control the All Shot is written as event driven object oriented in a language suited for object oriented code, such as C# or Visual Basic. The software could function as non-object oriented code as well (see FIGS. 13 a and 13 b). Also as currently conceived, the software is written for an All Shot unit that has a reservoir of balls; meaning enough balls are in the All Shot to allow every station in the Return System where balls accumulate to be full with additional balls remaining in the Ball Collector 111 (FIGS. 1 and 2). The software could be written to function with fewer balls while still maintaining functionality.

The Controller 101 is configured to boot and automatically launch the All Shot Software (see FIG. 13 a (a)). Also the output from the boot process and the All Shot is displayed on at least one monitor. The default monitor for display is the Primary Monitor 451 (FIG. 1) located near the front of the Shooting Platform 107 (FIGS. 1 and 5). This configuration process includes running the processes needed to execute the software, such as initialization of the components (controlled by the Main Process Object) and configuring and opening all needed serial ports. An Interface Object contains the serial port objects and other members used in communication with the All Shot components and devices.

The system initiation process begins by uploading information that will be needed in the running of the All Shot software (see FIG. 13 a (b)). The data includes flags, property values, default values, movement instructions and sequencing data, etc. The program must access a designated database, upload the data for the particular All Shot configuration or the particular unit, and store it in local memory as an object, called the System Data Object. Also a Master Timer is activated. The System Data Object and Master Timer need to be accessible by all primary methods of the program.

The initiation process is timed based on an estimated time for the given All Shot configuration to complete the process. This value is extracted from the System Data Object and used to time the initialization process.

Another part of the initialization process is to connect the All Shot software to the various components that will send or receive information (see FIG. 13 a (e)). The System Data Object contains the information that must be sent to each serial port connected to a component. Methods are written for each type of component attached to the serial port to extract the proper information from the System Data Object and administer the particular initiation process (see FIG. 13 a (h)). These methods report status to the designated variable in the System Data Object.

Once the timer for the initiation process has expired a method in the Main Process Object is used to examine the responses from the initiation process stored in the System Data Object (see FIG. 13 (k)). If not all of the components are successfully initiated by the time the timer expires, the software enters the Failed Initiation Mode.

A Failed Initiation Mode stops normal operations. The All Shot enters a diagnostic mode to help technicians resolve problems. The software extracts the Failed To Initiate Component List from the System Data Object to display on the monitor. Additional information specific to the error and the particular component of the given All Shot unit is also extracted from the System Data Object and displayed.

If the initiation process is successful the All Shot advances to conduct the initial activity. Each unit has a set of pre-program routines that run as the system preforms various activities in the background and waits for a user to log in. This mainly consists of media played on monitors and/or a hologram displayed in the All Shot. The All Shot software has methods that extract the required variables from the System Data Object to stream the media to particular monitors and to interface with the particular manufacturer's holographic projectors. The System Data Object also contains start time, display time, and other information for each individual monitor and holographic projector so the pre-program activities may be sequenced.

The All Shot software is event driven with events arising from both the system (components such as drivers, encoder, 3D Doppler radar) and from users via various interfaces such as touch pad and voice commands. The System Data Object contains mapping information that indicates to the software what type of device is connected to a particular serial port, as well as formatting information for the incoming data. These values are extracted from the System Data Object by the Interface Object and used so that port listening methods for each port may parse incoming data and direct it to a secondary thread for processing. The secondary thread is used to determine which variable needs to be updated based on the transmitted data (such as a component's position and/or time to complete the render). The interpreted data is sent to either the Process System Event methods or the Process User Events method in the Main Process Object.

The System State Object is used to store data that represents the state of the components of the All Shot in real-time. The captured data includes such information as the position of the Ball Catch 191 (FIG. 7) and how many balls are inside of it. The Main Process Object has a method, called the State Event Handler, that checks for component type (see FIG. 13 b (p)). If the event was triggered by a component the state of that component is updated on a list of objects, called the Component State List. Each object on the Component State List represents a components dynamic state. If the event is triggered by a Monitor State Item (Monitor State Items include sensors, such as the Kinect, and 3D Doppler radar system, monitors, etc.) the corresponding object on the Monitor State List is updated.

An interface is used to authenticate the user and, if login is successful, send the Controller 101 a Logged In Event with user name and ID number via serial port communication. The Interface Object passes the received information to the Event Reconciler (see FIG. 13 b (p)) method in the Main Process Object to route a login event to the Login Event Handler method (see FIG. 13 b (bb)). The software runs the particular unit's transition program in a similar process as for pre-program execution explained above. The software uploads the user's information from the appropriate database for the provided user name and ID number and creates an Active User Object (see FIG. 13 b (cc)). This object contains all the relevant information for the current active user, either as member data or as data used to query a database for information. The profile is proliferated (see FIG. 13 b (ff)): The interface touch pad is provided with the current user name and a list of program names stored for the user. Also lighting and media content displayed on monitors and holographic projectors are altered based on the particular user's preferences stored in the Active User Object.

After a user's profile is loaded and proliferated, the user also gains access to control commands of the All Shot. The user may choose, via an available interface method, stop, pause, increase render speed, and decrease render speed for a running program, among other options. This type of command is sent to the Controller 101 by serial communication from the interface being used.

The data is processed, similar to login data, to produce a Unit Control Event (processed in the Event Reconciler process). The unit control event is routed to the Command Event Handler method in the Main Process Object. The handler extracts the proper formatted instructions from the System State Object from the proper components to perform the control command.

When a user selects a desired program the software receives the program name via serial communication and ultimately routes a Load Program Event to the Load Program Event Handler method (using similar logic as used for the logic process above, see FIG. 13 b (gg)). This method extracts information from the Active User Object to query the proper database for a list of unformatted move data that represents the program. This data is stored in the Active Program Object. (If the program operational mode requires the Slant Floor 117 (FIG. 5) to be at maximum slant and it is not, instructions are sent to place the Slant Floor 117 (FIG. 5) at maximum slant. Likewise, if the Hatch 129 (FIG. 1) is open and the operational mode requires it to be closed, instructions are sent to close the Hatch 129.)

When a program is written there is no way to know the Basketball Rim 103 (FIG. 3) and each Ejector 113 (FIGS. 1 and 4) position (see FIG. 13 b (jj)). Furthermore, individual All Shot units are configured to differing dimensions. The programs are written based on a fixed standard size, the Reference Unit Size. If the size of the particular All Shot unit is larger than the Reference Unit Size no adjustment is needed. However, if the particular All Shot unit is smaller in one or more dimensions than the Reference Unit Size the software generates ratios (All Shot unit dimension/reference unit dimension). Only the particular undersized dimensions are adjusted.

The first render positions are adjusted by multiplying each by its corresponding ratio (the positions are referenced from the center-front point on the Shooting Platform 107).

Additionally, the Active Program Object contains a method, called Adjust Distance Members, which reads in the ratios and adjusts the distance of each component involved in shot and pass renderings. Each component has lists of distances, one for passes and one for shots, associated with it stored in the Active Program Object. Specifically, the Forward Backward Propulsion System 271 (FIG. 3), Left Right Propulsion System 279 (FIG. 9), Ejector Propulsion Motor 253 (FIG. 4), and Ejector Rotation Motor 257 (FIG. 4) each have a list containing move distances for each render assigned to it (the logic is the same for both the pass and shot lists). The values for the Forward Backward Propulsion System 271 (FIG. 3), Left Right Propulsion System 279 (FIG. 9), and Ejector Propulsion Motor 253 (FIG. 4) are multiplied by the corresponding ratio to adjust for the particular All Shot.

The rotational component of the Ball Ejector Assembly 109 (FIGS. 1 and 4), the Ejector Rotation Motor 257 (FIG. 4), is found by using the ratio of similar right triangles formed from the points: 1) the target point on the Shooting Platform 107 (FIGS. 1 and 5), 2) a point on the path of ejector travel where a perpendicular line extended out would connect to the target point on the Shooting Platform 107 (FIGS. 1 and 5), 3) the distance before adjustment (d1), and the distance after adjustment (d2). From this ratio the new angle is given by the equation T2=d2(T1/d1), where T2 is the adjusted angular distance and T1 is pre-adjustment angular distance.

To execute a program the Active Program Object extracts the appropriate start position for each component used to render the shot and pass from the System State Object (see FIG. 13 b (q)). The first position of each component is subtracted from the corresponding initial position extracted from the System State Object. The Active Program Object converts the resultant values, and all the corresponding subsequent distance values, to the proper format for each component based on mapping information stored in the System Data Object. Components are sent properly formatted data to render the first or next shot and/or pass. Each component sends data back over the serial port connection to indicate when the instruction has been completed. The instructions are fed to the shot and pass rendering components based on the trigger for the next shot and/or next pass. The software confirms each component has reported successful instruction completion before updating the System Data Object that the shot and/or pass is rendered.

The program has at least one pass trigger specified for each pass to be rendered. The default trigger is the completion of the associated pass and shot renders. Other triggers include voice activation, touch pad activation, and Kinect recognition activation. The Event Reconciler method directly sets flags in the System State Object including RenderComplete and PassedBall.

The RenderComplete flag is set true once all components involved in the active render or renders report complete. The PassBall flag is set true after a pass signal is issued by the Controller 101 to the Pass Trigger Board 453. Both flags are set false once a render starts.

While the RenderComplete is set true and the PassedBall flag is set false methods in the Main Process Object receive input from the Event Reconciler method used to check for the active trigger condition at a fixed interval. A touch pad is activated by the proper key pad event. The voice activation is activated by recognition of the proper voice command. The Kinect trigger is activated by the shooter achieving a certain posture (such as the shooter turned to an Ejector 101 with bent knees and hands forward).

The next shot and pass reading instructions are not sent until two software events occur: 1) a shot characteristic is detected (Shot Taken) and 2) a qualified shot is identified (Shot Made, see FIG. 13 (y)). One Shot Taken condition is the time it takes an average player to shoot the shot plus a fixed time. One Shot Made qualifier is a shot taken in a fixed time. In this case when the qualified shot time is greater than the time to take a shot, the next render occurs exclusively as a function of time. As currently conceived, the software logic to discover this form of pass and/or shot trigger, called the Time Expire, is identical for all the trigger types used in the software. The general logic is to: 1) Specify events to monitor for both the Shot Taken and Shot Made conditions, 2) Specify the conditions that must be satisfied for compliance for the Shot Taken and Shot Made conditions, and 3) the Shot Taken condition must be satisfied before the Shot Made condition for the next renders to be triggered.

In the case of the Time Expire trigger, the specified event to monitor is TimerOne (for Shot Taken) and TimerTwo (for Shot Made) in the System State Object. These timers are activated once the first render of a program is completed. For the Time Expire trigger, the time conditions are set in the program for each shot. These values are stored in the Active Program Object. The Active Program Object compares the TimerOne and TimerTwo states to the specified condition at a specified interval. When the Shot Taken condition is satisfied a flag is set in the Active Program Object. When the Shot Made condition is satisfied the Shot Taken flag is checked.

Other trigger states are built based on the devices used in the All Shot, such as the Kinect and the 3D Doppler systems. Methods in the Interface Object are written to the particular device manufacturer's data stream to track the shooter (for the Kinect) and the ball, a projectile, (for the 3D Doppler).

A trigger called the Jump and Shoot is based on monitoring the Kinect. The user is monitored from the time a render occurs. Data is stored in the System State Object for the foot and elbow conditions between shot renders. The Active Program Object has a method that examines this data at intervals to search for a span where the player has jumped and has rotated an overhead elbow in the direction of the Basketball Rim 103 (FIG. 3). This is the basic requirement for a Shot Taken. Methods are included in the program to make the condition more restrictive by requiring, for instance, a minimum or particular height jumped when the elbow is in a specified rotational state.

The 3D Doppler is used to determine the Shot Made condition in a similar fashion. Data is stored in the System State Object for the path of the shot ball as it leaves a shooters hand, determined from the Kinect data, until it hits the ground. Methods in the Active Program Object compare path data starting at the rim and ending at the floor to determine the Shot Made condition. For instance, the program can specify a radius value about the center of the Basketball Rim 103 (FIG. 3) projected to the floor as the ball landing boundary for a Made Shot. Or say the program is concerned with shooter's form more than the shot result. The program can set the software to check for a non-parabolic path (not an air ball) for the Made Shot condition.

The software uses the Kinect and 3D Doppler systems to allow the creator of the program a large range of triggers to initiate the next render search process. The software has methods to read the data stream of these devices based on the manufacturers specifications.

A pass and shot rendering program runs in a separate thread from the main thread. This allows the process of searching for the next render to proceed until an End Program Indicator (which is placed in the System State Object and tested for by the Active Program Object) or an End Program Condition is detected (no more renders are specified).

The All Shot software also controls the components involved in the collection and return of shot balls. These components communicate with the software following the same logic as the other components. The collection and return components report specified conditions to the software via serial communication at fixed intervals or as triggered by a change in a state (for instance, the ball count in an Ejector could change). These states are stored in the System State Object to be accessed by the Collect Return Control Object. The Collect Return Control Object contains methods that retrieve the ball count and other state information from the System State Object for the various locations in the return process. The program also has Reload Ejector Indicators that signal the time in the program where a reload of a specified ejector should occur. The Active Program Object passes these indicator values to the Collect Return Control Object at the proper time as the program executes.

As currently conceived, the software uses two triggers to load the Ejector 113 (FIGS. 1 and 4) from the Ball Catch 191 (FIG. 7): 1) Program Specified Ejector Load Points Process, and 2) System State Ejector Loading.

Program Specified Ejector Load Points are indicators in the program that indicate when a particular ejector should be loaded based on points of inactivity in the program (these are manually placed in the program by the programmer or by external software at program creation). The Active Program Object has a method that reads these points from the program and activates the Collect Return Control Object to load the ejector. The Load Ejector method in the Collect Return Control Object extracts the proper load instructions from the System State Object and sends instructions to transferred balls from the Ball Catch 191 (FIG. 7) to the Ejector 113 (FIGS. 1 and 4) (this process is explained in the operations section below). The Collector Return Control Object uses its SequenceTimer method and instruction sequencing data from the System State Object to sequence the movements used to transfer balls.

System State Ejector Loading is driven by the real-time conditions in the All Shot; when an Ejector 113 (FIGS. 1 and 4) has less than a specified number of balls the Ejector 113 (FIGS. 1 and 4) reloads, even if the program has to be paused to accomplish it. The instructions and SequenceTimer code explained above for the program specified Ejector Load Points is used to transfer balls from the Ball Catch 191 (FIG. 7) to the Ejector 113 (FIGS. 1 and 4).

The movements of other components in the Return System are in reaction to the Ejector 113 (FIGS. 1 and 4) being loaded with balls from the Ball Catch 191 (FIG. 7). Before the first render of the program, the state of the return system is assessed by the Active Program Object to determine the number of balls that are in the Ball Catch 191 (FIG. 7) (for each Ball Catch 191). The methods in the Active Program Object load the maximum number of balls in various stations before the program begins rendering shots and passes. For instance, if a Ball Catch 191 (FIG. 7) needs more balls to hold its maximum the software sends out instructions to the Lift Tower 143 (FIGS. 1 and 2) to send the proper number of balls (the formatted instructions and sequences for the particular unit is stored in the System State Object). Following similar logic, the Lift Tower 143 (FIGS. 1 and 2) is loaded to full capacity by methods in the Active Program Object. Again following similar logic, the Lift Channel 151 (FIGS. 2 and 6) is filled to capacity by methods that control the ball distribution through the Channel Hub 147 (FIG. 2). (see the operation section below for details of how these processes are sequenced).

Once rendering has begun ball movement through the Return System is triggered by the ejector reload. As the Ejector 113 (FIGS. 1 and 4) reloads, the Lift Tower 143 (FIGS. 1 and 2) is instructed to send balls to reload the Ball Catch 191 (FIG. 7). In turn, instructions are sent to reload the Lift Tower 143 (FIGS. 1 and 2) and then the Lift Channel 151 (FIGS. 2 and 6). This process continues as long as the program is executing (see FIG. 13 b (x)).

Operations:

In this embodiment, the All Shot is a system that allows a shooter to take a variety of shots efficiently and with more true game conditions than the prior art. This is accomplished by a multi-phase process: 1) The Next Shot and Next Pass are rendered, 2) the Shot Ball 155 (FIG. 1) is collected and returned to the Ejector 113 (FIGS. 1 and 4) to be passed again, 3) the Controller 101 checks the program and system status and an action is taken (render Next Shot, exit program, etc.), and 4) the End Program Condition is checked and the program is ended or continued. Additionally, the Controller 101 constantly checks for an End Program Indicator or other command from non-program sources, and collects media and data for processing and/or storage.

To render a shot the program provides a Reference Shot Position on the Shooting Platform 107 (FIGS. 1 and 5) and a shot location distance and position as referenced from an actual basketball court. A rendered shot is created when the Basketball Rim 103 (FIG. 3) and Backboard 105 (FIG. 3) are completely positioned and oriented relative to the Reference Shot Position. For example, if the program calls for a baseline 15 foot jump-shot for a player center-front on the Shooting Platform 107 (FIGS. 1 and 5), the Basketball Rim 103 (FIG. 3) and Backboard 105 (FIG. 3) (Rim Backboard Support Assembly 265) are moved to create the baseline 15 foot baseline shot relative to the specified position.

To render a pass the Controller 101 instructs the Ball Ejector Assembly 109 (FIGS. 1 and 4) to move along the Interior Wall 233, to create a specified distance, and the Ejector 113 (FIGS. 1 and 4) is rotated to aim toward the Reference Shot Position. For example, if the Ball Ejector Assembly 109 (FIGS. 1 and 4) is located twenty feet forward from the Shooting Platform 107 (FIGS. 1 and 5) and the render distance is ten feet from the Shooting Platform 107 (FIGS. 1 and 5), the Ball Ejector Assembly 109 (FIGS. 1 and 4) is moved ten feet closer. The Ejector 113 (FIGS. 1 and 4) is rotated to an angle so a passed ball will pass over the Reference Shot Position. The program also has a Pass Trigger specified for each shot. There are a variety of triggers that can signal the Ejector 113 (FIGS. 1 and 4) to release a pass. Depending on the Ejector 113 (FIGS. 1 and 4) used a Pass Trigger could include, but not be limited to, completion of the shot and pass rendering, shot time intervals, body positioning, voice activation, etc. The Controller 101 software makes sure the pass and shot are rendered before a ball is ejected (passed).

Shot balls are collected and returned to be put back in the rotation of balls to be passed to the shooter, see FIGS. 1, 2 and 4. The system utilizes various principles of physics, such as gravity and inelastic collisions, coupled with various lift processes to collect basketballs and load the two ejectors, Ejector 113 (FIGS. 1 and 4). The advancement of balls is controlled at various points in the Return Process to optimize operations, shutdown, etc.

In this embodiment, the Controller 101 determines what constitutes a shot based on the program being ran and the continuous evaluation of values or events being monitored. A Shot Taken is specified in the program for each shot based on the detection of a condition-set (could be just one condition). Once the condition(s) are met the Controller 101 registers a Shot Taken. The Controller 101 starts to check for the Next Shot, End Program Condition or other indicator after the shot has been determined to have occurred. This process continues until the End Program Status is detected.

In this embodiment, on power-up of the system the initiation process is executed. The Controller 101 executes the start-up process for components that have been designated for system start-up initiation. This includes motors, drivers, sensor systems, some monitors, and other items. Each system may have an initialization process specified by the manufacturer in addition to the All Shot initiation process. For instance, as currently conceived, position sensors (linear encoders) check that the sensor is physically located where the sensor logic says it is located. The Controller 101 handles errors, such as fatal following error, or it records the start position of each sensor initialized.

In this embodiment, an active shooting program is specified by use of interface software. The active program begins execution when prompted via one of the currently conceived interface methods, including a button on the User Interface 301, Voice Interface 303, and Kinect Array, or comparable interface, etc. The Kinect Array may trigger the program by menu selection via a monitor, or by shooter location and posture recognition; for instance, the trigger could be the shooter on the target location in the ready to receive pass posture (knees bent with palms aimed at Ejector 113.)

The Controller 101 reads the Operational Mode used in the active program and sends out instructions to the components to create a proper All Shot configuration. For instance, in this embodiment, if the Slant Floor 117 (FIG. 5) is not at its maximum slant, the Controller 101 sends instructions to the Slant Floor Lift 133 (FIG. 1) to lower the Slant Floor Base Frame 123 (FIG. 5) to Maximum Slant. If the Hatch 129 (FIG. 1) is not closed, the Controller 101 instructs the Hatch Motor 193 to close the Hatch 129 (FIG. 1).

The Controller 101 reads the position of the Next Pass from the program (a program must have at least one pass). To linearly position the Ball Ejector Assembly 109 (FIGS. 1 and 4) its start position is read from the Ball Ejector Linear Encoder 403 (FIG. 4). The Controller 101 generates move instructions for the Ejector Propulsion Motor 253 (FIG. 4) based on the Ball Ejector Assembly 109 (FIGS. 1 and 4) start position and destination linear position specified in the program. Likewise, the Controller 101 reads the rotational start position of the Ejector 113 (FIGS. 1 and 4) from the Ball Ejector Rotational Encoder 405 (FIG. 4). The Controller 101 generates rotation instructions for the Ejector Rotation Motor 257 (FIG. 4) based on the start and destination rotational position determined based on the Reference Shot Position.

The Forward Backward Carriage 269 (FIG. 3) and Left Right Carriage 275 (FIG. 3) are positioned in similar processes as that described above for the linear positioning of the Ball Ejector Assembly 109 (FIGS. 1 and 4). The start position of each carriage is read by the Controller 101 from the Forward Backward Linear Encoder 407 (FIG. 3) and Left Right Linear Encoder 409 (FIG. 3). The Controller 101 uses the start values with the appropriate shot information to generate movement instructions. Instructions are sent to the Forward Backward Carriage Brake 229 (FIG. 3) and Left Right Carriage Brake 217 (FIG. 9) to release for movement. The appropriate movement instruction is sent to the Forward Backward Propulsion System 271 (FIG. 3) and Left Right Propulsion System 279 (FIG. 9) to position the forward/backward and left/right position for the specified shot.

In this embodiment, the rotation of the Basketball Rim 103 (FIG. 3) and Backboard 105 (FIG. 3) for the specified shot is set in a similar manner as the rotation of the Ejector 113 (FIGS. 1 and 4) outlined above. The Controller 101 reads the rotational position of the Rotation Control Motor 287 (FIG. 8) from the Rim Rotational Encoder 411 (FIG. 8). The Controller 101 generates movement instructions, releases the Rendered Shot Brake 297 (FIG. 9), and sends instructions to the Ejector Rotation Motor 257 (FIG. 4) so as to rotate Basketball Rim 103 (FIG. 3) and Backboard 105 (FIG. 3).

In this embodiment, similar to previous linear movements outlined above, the Basketball Rim 103 (FIG. 3) start height, as read from the Rim Linear Encoder 413 (FIG. 11), is used by the Controller 101 along with position information provided by the active program to generate movement instructions. The Rendered Shot Brake 297 (FIG. 9) is released and the instructions are sent to the Rim Lift Motor 295 (FIGS. 3, 8, 9, and 11) to vertically position the Basketball Rim 103 (FIG. 3) and Backboard 105 (FIG. 3) via the Backboard Position Control Bar 285 (FIGS. 3 and 8) movement.

Brakes that are disengaged in the movements outlined above are re-engaged once the movement is complete.

Once the shot and pass are rendered the Controller 101 begins to check for the Shot Taken. Shot Taken is achieved when all the conditions for the Current Shot specified by the program are detected by the Controller 101. Conditions required for a Shot Taken are not limited to but include timed out, an actual made shot, close miss, body posture during the shot, etc. The default condition-set, in this embodiment, is the timed out, which is the lapsed time of a timer, part of the Controller 101 software that is set each time a shot is rendered. Currently, after the Shot Taken has been established, the Controller 101 takes one of three actions: 1) Stop the program and run program end protocol, 2) Stop the program and run interrupt protocol, or 3) Render the Next Pass and Next Shot. More actions (such as query the user for manual instructions through an interface) could be added or any of these modified or eliminated.

Program end protocol, in this embodiment, occurs when the program has no more renderings to create. The Controller 101 reads any specific program ending tasks specified in the program, such as data storage instructions, and completes the tasks, along with any tasks coded in the software, such as reset. Reset involves tasks such as potentially dumping balls out the Ejector 113 (FIGS. 1 and 4) to allow optimal ball positioning in the return system, media upload, software parameter resets, etc.

Interrupt protocol, in this embodiment, occurs when the system needs to stop all mechanical activity. This can be in response to a user command or from software logic or in response to software exceptions, etc. The Controller 101 checks for End Program Indicators (errors from components such as the encoder explained above) at specified intervals from system power up to system power down, and shuts down all components under its control.

When no End Program Indicator or End Program Condition is detected by the Controller 101 the Next Pass and Next Shot are rendered. Every component's end position in the previous rendering is its start position in the current rendering (for the Next Pass and Next Shot). This process is repeated until an End Program Condition or End Program Indicator is detected by the Controller 101 software.

In this embodiment, once a ball is shot it enters into the collection and return phase. Depending on the outcome of a shot, the ball can collide with the Basketball Rim 103 (FIG. 3), Backboard 105 (FIG. 3), Rear Wall 119, Interior Wall 233, Slant Floor 117 (FIG. 5), Dead Spot 131 (FIG. 1), the net, etc. Balls that are contained in the Activity Area 235 on the Slant Floor 117 (FIG. 5) roll at a downward gradient into the Ball Collector 111 (FIGS. 1 and 2). Balls in the Ball Collector 111 (FIGS. 1 and 2) are directed downward by the gradient and to the center by the ball guides. The Controller 101 analyzes information from the Ball Dejammer Sensor 139 (FIG. 6) and activates the Ball Dejammer 137 (FIG. 6) if a jam exists.

Balls flow out of the Ball Collector 111 (FIGS. 1 and 2) into the Upper Channel 145 (FIGS. 2 and 6) where the corral controls the flow. The Controller 101 uses dynamic conditions such as ball count throughout the Return System, program particulars, etc. to know when and which ball lift should be reloaded with balls. If the Channel Select Guide 149 (FIGS. 2 and 6) in the Channel Hub 147 (FIG. 2) needs to be rotated to direct balls into the currently covered Lift Channel 151 (FIGS. 2 and 6) the Controller 101 sends instructions to the Channel Select Guide 149 (FIGS. 2 and 6) to flip the Select Panel 153 (FIGS. 2 and 6). The Controller 101 instructs the Upper Channel 145 (FIGS. 2 and 6) corral to release the corralled ball. The released ball flows through the Channel Hub 147 (FIG. 2) into the accessible Lift Channel 151 (FIGS. 2 and 6) where it is stopped by either the stopped ball ahead or the channel corral.

The ball lift process uses the two lift towers to lift balls up to each Side Ball Channel 177 (FIG. 4). In this embodiment, a ball lift employs a lift and drop procedure that involves clamping and un-clamping carriage handles. The Controller 101 sends movement instructions to the Lift Clamp 173 (FIG. 10), as well as clamp and un-clamp signals to the Clamp Logic Controller 195 (FIG. 10). The Clamp Logic Controller 195 (FIG. 10) may be signaled to execute any of three commands, Clamp Next Handle, Un-clamp Next Handle, and Retract. The execution of some or all of these commands, in conjunction with other component movements, are used to lift balls in the lift towers.

In this embodiment, currently it is conceived that the process starts with all the lift carriages stacked in the Carriage Well 189 (FIG. 2) (even though not having all carriages stacked will not prevent functionality). The Controller 101 sends movement instructions to the Lift Clamp 173 (FIG. 10), followed by a signal to the Clamp Logic Controller 195 (FIG. 10) to clamp the Top Ball Carriage handle ledge. The Controller 101 sends instructions to the target ball corral to release the corralled ball into the Top Ball Carriage. If another ball is to be lifted and a carriage is available, the Controller 101 sends instructions, similar to those from the previously lifted ball carriage, to clamp the handle of the Next Carriage. The process repeats until no more balls are to be lifted or no more carriages are left in the stack. Once the Controller 101 determines the ball carriages need to be lifted it sends instructions to the Lift Clamp 173 (FIG. 10) to lift to Ball Clearance Height.

In this embodiment, balls are deposited to the Side Ball Channel 177 (FIG. 4) from the lift at Ball Clearance Height by the Controller 101 executing the drop process: 1) the Ball Claw 163 (FIG. 1) is fully extended into a lift tower, 2) the Lowest Clamped Ball Carriage is lowered to a position where the Ball Claw 163 (FIG. 1) dislodges the ball, and 3) the downward movement of carriages pause to allow the displaced ball to roll down the Ball Claw 163 (FIG. 1) into the Side Ball Channel 177 (FIG. 4). This process repeats until all balls have been transferred to the Side Ball Channel 177 (FIG. 4). The ball carriages are stacked in the Carriage Well 189 (FIG. 2) by repeatedly lowering the current Lowest Clamped Ball Carriage until its on the stack and un-clamping its Handle Ledge 166 (FIG. 10). The Ball Claw 163 (FIG. 1) is retracted completely out of the lift tower.

In this embodiment, balls that roll down the Side Ball Channel 177 (FIG. 4) are caught by the Ball Catch 191 (FIG. 7) until the Ball Catch 191 (FIG. 7) is full or there are no more balls to receive. The Controller 101 has the Ball Stop 199 (FIGS. 4 and 7) (rear) rotated so that the last ball considered inside the Ball Catch 191 (FIG. 7) protrudes out partially to hold the Next Catch Ball in place when the Ball Catch 191 (FIG. 7) is positioned inside the channel. Additional balls accumulate in the Side Ball Channel 177 (FIG. 4) outside the Ball Catch 191 (FIG. 7).

In this embodiment, once the Controller 101 determines balls are to be transferred from the Ball Catch 191 (FIG. 7) to the Ejector 113 (FIGS. 1 and 4) instructions are sent to execute the catch lift process. The Ball Stop 199 (FIGS. 4 and 7) (front) is rotated to hold the Next Catch Ball in place. The Ball Stop 199 (FIGS. 4 and 7) (rear) is rotated enough for the balls in the Ball Catch 191 (FIG. 7) to move forward without falling out the Ball Catch 191 (FIG. 7). The Catch Lift Actuator 201 (FIGS. 4 and 7) is activated by the Controller 101 to lift the Ball Catch 191 (FIG. 7) in line with the Ball Shunt 205 (FIG. 4). The Controller 101 rotates the Ball Stop (FIGS. 4 and 7) (rear) so the balls flow down gradient into the Ball Shunt 205 (FIG. 4) through the Ball Load Shunt 207 (FIG. 4) and on into the Ejector 113 (FIGS. 1 and 4). The Ball Catch 191 (FIG. 7) is reset to receive balls (lowered inside the channel with the ball stops repositioned).

In this embodiment, data and media are continuously generated, processed, and stored. The Controller 101 may use generated data and media in a number of processes, such as real-time data display and analysis. Also, data is stored by the Controller 101 to a database for processing, storage, and deployment.

In this embodiment, it is currently conceived that the Controller 101 has media and data processing software to regulate and control the aforementioned processes. The software may be later expanded to process data and media and other information in a more extensive manner.

The All Shot system is initialized with the activation of the Controller 101 from an inactive state, such as shutdown or hibernation, or changed from a system level mode, such as a switch from a Diagnostic Mode to an Operational Mode. In the Operational Mode the All Shot is available for user activity, once the initialization process has been completed.

The Operational Mode begins with the system initialization process. Various components are powered or revitalized from an energy conservation mode. Some of the components, such as motor drivers, encoders, etc., have manufacturer start up procedures to follow. The Controller 101 monitors the initialization process of the self-initializing components for status feedback. Also data form external sources (for example information from an in house or remote database) is downloaded to the system. If the system fails to initialize, it enters a diagnostic mode to resolve problems with particular components.

Once the All Shot has been initialized, the Controller 101 monitors input from connected sources. The Controller 101 continuously monitors the conditions of various components in the system and makes adjustments when needed. The Controller 101 also listens for System Events sent by components and responds (for instance, an encoder or driver may send an error message event and the Controller 101 responds by a shutdown of the system.) Users Events are also monitored. The Controller 101 may respond to these events as well (for instance, the system may power down or the environment may be changed.)

In the case where a user is successfully logged in, the Controller 101 uploads user specific information, such as the user profile, and makes adjustments accordingly. Part of this upload includes user created shooting programs that are added to standard system programs, which the user may execute. Upon execution of a program, the All Shot runs the shot rendering process outlined above in accordance with the selected program. Once the program concludes, the Controller 101 waits for the next user event, which include but are not limited to re-running the current program or loading a different program.

The All Shot continues to wait for System Events and User Events until a shutdown condition is detected by the Controller 101. The Controller 101 will invoke a shutdown procedure based on the system status. If the system is functioning normally, the components are allowed to engage in normal shutdown procedures (such as a shift to a lower power level or data upload before shutdown.) If the system is experiencing abnormal conditions the shutdown could be as crude as cutting power.

EMBODIMENT TWO

Description: Shot Finishing

In this embodiment, the All Shot is configured for post-to-mid post and finishing shots. This Operational Mode uses the Rim Backboard Support Assembly 265 (FIGS. 3 and 9) rending capabilities to simulate close shots without the loss of ball confinement provided by the Rear Wall 119, Forward Wall 219, and each Interior Containment Wall 233.

The Slant Floor Base Frame 123 (FIG. 5) is rotated up on the Industrial Hinge 121 (FIG. 5) to the level position. The Slant Floor 117 (FIG. 5) is essentially at the height of the Shooting Platform 107 (FIGS. 1 and 5) when at the level position. As currently conceived, The Slant Floor 117 (FIG. 5) is comprised of sections of portable basketball court fitted and secured to the Slant Floor Base Frame 123 (FIG. 5). The Slant Floor 117 (FIG. 5) could alternatively be made of a single section of fitted basketball court, or any other surface suitable for athletic activities conducted by a specified number of players.

Support for the Slant Floor Base Frame 123 (FIG. 5) is partially supplied by the Slant Floor Lift 133 (FIG. 1). In addition to lifting and lowering the Slant Floor Base Frame 123 (FIG. 5),the Slant Floor Lift 133 (FIG. 1) has a holding force sufficient to support the Slant Floor Base Frame 123 (FIG. 5) and Slant Floor 117 (FIG. 5) when rotated to the level position.

A Level Floor Support Assembly 421 is used to support the Slant Floor Base Frame 123 at various positions along its length and width when the Slant Floor Base Frame 123 is in level position. As currently conceived, the Level Floor Support Assembly 421 has an Industrial Wheel 425 at various positions on a Flap Frame 427 at each position designated for support. Alternatively, sliders on rails or another adequate roller/support method could be used in place of the wheels.

A Level Floor Actuator 429, is attached at the base of the Platform Frame 213 (FIGS. 1 and 5) to provide leverage for pushing and pulling the attached Flap Frame 427.

A Flap Support 431, a hinged support plate, is secured to the Flap Frame 427 below each place designated to be supported when the Slant Floor 117 (FIG. 5) is in level position. The Flap Support 431 has a Flap Support Motor 459, a Motion Control System, attached to the hinge of the Flap Frame 427 such that the plate may be rotated down to the horizontal position or rotated to the vertical position.

A Flap Slot 433 is currently conceived to be a section of strong stock channel metal, or some other load-bearing support material, sized to allow the plate on the Flap Support 431 to slide in with a fit adequate to provide support. A Flap Slot 433 is attached to the bottom of the Slant Floor Base Frame 123 at various locations such that when a Flap Support 431 has its plate vertical and is pushed forward by the Level Floor Actuator 429 it slides into a Flap Slot 433.

The Controller 101 is connected to the components of the Level Floor Support Assembly 421 via serial communication (wireless, Ethernet, etc.) as needed for control purposes.

Operations:

In this Embodiment, the All Shot is used to conduct post training and inside shots, as well as training for finishing shots (including slam dunks). This is accomplished in an efficient manner because the All Shot can render every post position on a regulation (basketball) half court referenced from a selection of positions on the level Slant Floor 117 (FIG. 5). This allows the player to render shots so as to start a post move from a reference point on the floor to optimize factors such as containment, space to maneuver, and/or to create particular angles between player, rim, and passer (when a passer is present or the ejectors, Ejector 113 (FIGS. 1 and 4), are active).

The Controller 101 may be accessed to change Operation Mode for post and finishing moves by any of the currently conceived interface methods. If necessary the Controller 101 adjusts components to create the mode. This could include, but not be limited to, lifting and supporting the Slant Floor Base Frame 123, or activating or deactivating various media elements to support the anticipated player location and activity (for instance a dunk cam could be activated if the rim is lowered.)

The Controller 101 can run a shot program, similar to as in other embodiments, or the player may use an interface method to render a particular shot. The Shot Taken for the manual case would only be achieved when the player manually rendered another shot. 

1. An athletics training machine, comprising: a. an enclosure with a support framework made of a rigid material for providing structural support and being of a predetermined size to accommodate a plurality of human beings for athletics training, b. a first carriage having a rigid framework and being of a predetermined size to extend horizontally across said support framework, and c. a first means to attach said first carriage to said support framework enabling said first carriage to be controllably positioned at a plurality of locations along said support framework in said enclosure, d. a second carriage having a rigid framework and being of a predetermined size to extend horizontally across said first carriage, and e. a second means to attach said second carriage to said first carriage thereby enabling said second carriage to be controllably positioned at a plurality of locations along said first carriage, f. an elongated support member being of a predetermined length functionally connected to said second carriage so that said elongated support member is vertically suspended in said enclosure and perpendicularly positioned to said second carriage and said first carriage, g. a basketball goal functionally connected to said elongated support member so that said basketball goal is suspended below said second carriage and said first carriage in said enclosure, h. a rotational manipulation system mounted on said second carriage and functionally connected to said elongated support member for controllably articulating the rotational position of said basketball goal, i. a vertical manipulation system mounted on said second carriage and functionally connected to said elongated support member for controllably articulating the vertical position of said basketball goal, j. a first surface made of a rigid material mounted in said enclosure and being of a predetermined size to accommodate use by a human being for athletic activities, k. a second surface made of a rigid material and being of a predetermined size mounted in said enclosure adjacent to said first surface, and l. said second surface functionally connected to said first surface so that said second surface can be angled to a sufficient degree to allow a plurality of balls to roll to the lower end of said second surface, m. a ball collector mounted in said enclosure adjacent to said second surface for collecting a plurality of balls, n. a ball lift system mounted in said enclosure functionally connected to said ball collector for lifting a plurality of balls to a plurality of predetermined heights, o. a ball transport system functionally connected to said ball lift system for controllably transporting a plurality of balls to a plurality of specified locations in said enclosure, p. a ball ejector functionally connected to said ball transport system enabling said ball ejector to receive a plurality of balls from said ball transport system, and q. said ball ejector functionally connected to said support framework enabling said ball ejector to be controllably positioned at a plurality of desired locations in said enclosure thereby enabling said ball ejector to propel a plurality of balls to a human being at a plurality of locations in said enclosure.
 2. The enclosure of claim 1 wherein said enclosure is a rectangular structure.
 3. The support framework of claim 1 wherein said support framework is a carriage and structure support frame.
 4. The first carriage of claim 1 wherein said first carriage is a forward backward carriage.
 5. The first means of claim 1 wherein said first means is a linear motion device.
 6. The second carriage of claim 1 wherein said second carriage is a left right carriage.
 7. The second means of claim 1 wherein said second means is a linear motion device.
 8. The first surface of claim 1 wherein said first surface is a shooting platform.
 9. The second surface of claim 1 wherein said second surface is a slant floor.
 10. A method for enhancing basketball training and improving basketball skills, comprising: a. providing an enclosure of a predetermined size for containing basketball training sessions, and b. providing an unobstructed rim in said enclosure such that said unobstructed rim is able to be controllably positioned to a plurality of specified locations in said enclosure thereby enabling a human being to efficiently practice a plurality of basketball shots in said enclosure, and c. providing a ball collection means in said enclosure so that balls shot at said unobstructed rim can be efficiently collected, and d. providing a ball distribution means in said enclosure so that collected balls can be propelled from a plurality of locations and to a plurality of locations in said enclosure thereby providing a wide range of more efficient training drills.
 11. A data processing system for processing real time data and stored data by converting said real time data and said stored data to movement instruction data sets, comprising: a plurality of real time data producing components, a means for storing data, a plurality of movement devices, and a computer processing means configured to a) receive data from said plurality of real time data producing components, b) retrieve data from said means for storing data, c) process said real time data and said stored data to generate said movement instruction data sets such that each movement instruction data set in said movement instruction data sets is formatted for a given device in said plurality of movement devices, and d) transmit data from said movement data sets to each device in said plurality of movement devices based on predetermined routing assignments,
 12. The plurality of real time data producing components of claim 11 wherein said plurality of real time data producing components includes a ball ejector linear encoder.
 13. The plurality of movement devices of claim 11 wherein said plurality of movement devices includes a motion control system.
 14. The data processing system of claim 11 wherein said computer processing means is a controller.
 15. The movement instruction data set of claim 11 wherein said movement instruction data set is a driver movement instruction set. 